1. Field of the Invention
This invention relates to computer operating systems and, more particularly, to improvements in operating systems for controlling pointing devices.
2. History of the Prior Art
In a typical computer system utilizing bitmapped graphics, a mouse or other pointing device is used for accurately creating and revising graphic images. Basically, such a device provides signals accurately defining a position at which the pointing device is placed and the condition of one or more switches related to the device, usually referred to as buttons. In many of the more advanced systems, a mouse is also used for effecting many of the operations of various application programs by use of menus which may have operations selected by pointing to an item with a cursor controlled by the mouse and operating one or more of the buttons.
In the usual operating system utilizing a mouse or functionally similar pointing device (which are referred to hereinafter by either term), the pointing device generates interrupt signals approximately each one-fortieth of a second. Each of these signals causes the operating system to pause in its operation, sense the device position, store the new device position, redraw the cursor position, and return to the interrupted operation. This is a useful operation when either the pointing device position or the status of a button has changed. However, statistically, such changes occur much less often than every one fortieth of a second. Consequently, a substantial amount of system operation time is lost to the mechanism by which the pointing device condition is updated.
As is well known to those skilled in the art, in order to make an operating system functional, there must be many levels of interrupts. That is, for an operating system to function, some level of interrupt must take precedence over all other levels of interrupts and other interrupts must, in like manner, have their own precedence with regard to the other interrupts for an operating system to function. Thus, the mouse interrupt may, in many cases, be delayed in execution because of some other process having precedence and preempting the system for some period of time.
Moreover, in many of the more advanced computer systems which utilize pointing devices and provide for multitasking of operations, more than one program or process may be operating at the same time. This is usually accomplished by an operating system which allows one process to utilize the central processing unit (CPU) for a period, a second process to utilize the CPU for a second period, and so on, the sharing of the CPU, hopefully being such that each process appears to the user to be running without interruption by the other processes. The operation of a such multitasking system requires many more levels of preemption and interrupts and often delays the redrawing of the cursor representing the pointing device position for long periods of time.
Certain application programs which make use of pointing devices include utility programs for accelerating the movement of the cursor representing the position of the pointing device on the output display. If the interrupt utilized to redraw the cursor on the output display is preempted during movement of the pointing device, the output for the pointing device desoribed on the output display may well be substantially distorted.
It is, therefore, an object of the present invention to improve a computer operating system by decreasing the time utilized for pointing device updating.
It is another object of the present invention to provide an improved operating system for a computer including a mouse updating system which operates more rapidly than do those of prior art systems.
Another object of t is invention is to improve the mechanics by which a pointer position is updated in a computer operating system.
Another object of the present invention is to provide a pointing device interrupt system for use in computers which operates only in response to actual movement of the pointing device.
An additional object of the present invention is to provide an arrangement for remembering the positions to which a pointing device has been moved during an interim in which the position of the device has not been updated on the display so that the path previously taken by the device may be drawn as it occurred during that interim.